subprocess 会分别返回执行成功和失败的结果

import subprocess

command = input('请输入系统命令如 ipconfig dir 或者 错误的命令 pwd:')

res = subprocess.Popen(
    command,  # 系统命令
    shell=True,  # 是否执行命令
    stdout=subprocess.PIPE,  # 将执行成功的值保存到管道中,这里的管道有点类似队列,只能取一次去完就没有
    stderr=subprocess.PIPE  # 将执行失败的值保存到管道中
)

# 因为window系统的编码是gbk所以返回的bytes类型也是gbk的,如果使用utf-8解码会报错
print('执行成功的返回值:' + res.stdout.read().decode('gbk'))
print('执行失败的返回值:' + res.stderr.read().decode('gbk'))